home *** CD-ROM | disk | FTP | other *** search
/ Windows Expert / Windows Expert.iso / others / ole_101.zip / SCHMOO.ZIP / OLEGLOBL.H < prev    next >
C/C++ Source or Header  |  1992-04-13  |  7KB  |  214 lines

  1. /*
  2.  * OLEGLOBL.H
  3.  *
  4.  * Definitions an other globals specific to the OLE code.
  5.  *
  6.  */
  7.  
  8. #ifdef MAKEOLESERVER
  9.  
  10. #ifndef CCHPATHMAX
  11. #define CCHPATHMAX          256
  12. #endif
  13.  
  14. #ifndef CCHFILENAME
  15. #define CCHFILENAMEMAX      15
  16. #endif
  17.  
  18.  
  19. typedef LPOLESERVER    FAR *LPLPOLESERVER;
  20. typedef LPOLESERVERDOC FAR *LPLPOLESERVERDOC;
  21. typedef LPOLEOBJECT    FAR *LPLPOLEOBJECT;
  22.  
  23. typedef LPVOID (FAR PASCAL *LPVOIDPROC) (LPOLEOBJECT, LPSTR);
  24.  
  25.  
  26. typedef struct
  27.     {
  28.     LPOLEOBJECTVTBL     pvtbl;          //Standard
  29.     BOOL                fRelease;       //Flag to watch if we need to wait
  30.     LPOLECLIENT         pClient;        //Necessary for notifications
  31.     HANDLE              hMem;           //Memory handle to this structure
  32.     } SCHMOOOBJECT;
  33.  
  34.  
  35. typedef SCHMOOOBJECT FAR *LPSCHMOOOBJECT;
  36. #define CBSCHMOOOBJECT sizeof(SCHMOOOBJECT)
  37.  
  38.  
  39. typedef struct
  40.     {
  41.     LPOLESERVERDOCVTBL  pvtbl;          //Standard
  42.     LHSERVERDOC         lh;             //Required by OleRegisterServerDoc
  43.     BOOL                fRelease;       //Flag to watch if we need to wait
  44.     ATOM                aObject;        //Name of the document's object
  45.     ATOM                aClient;        //Name of the connected client
  46.     HANDLE              hMem;           //Memory handle to this structure
  47.     LPSCHMOOOBJECT      pObj;           //Last object we allocated
  48.     } SCHMOODOC;
  49.  
  50.  
  51. typedef SCHMOODOC FAR *LPSCHMOODOC;
  52. #define CBSCHMOODOC sizeof(SCHMOODOC)
  53.  
  54.  
  55. typedef struct
  56.     {
  57.     LPOLESERVERVTBL     pvtbl;          //Standard
  58.     LHSERVER            lh;             //Required by OleRegisterServer
  59.     BOOL                fRelease;       //Flag to watch if we need to wait
  60.     BOOL                fEmbed;         //TRUE if we're embedding only
  61.     BOOL                fLink;          //TRUE if we're linking only
  62.     WORD                wCmdShow;       //OLE-modified window show command
  63.     HWND                hWnd;           //Main application window
  64.     HANDLE              hMem;           //Memory handle to this structure
  65.     LPSCHMOODOC         pDoc;           //Last document we allocated
  66.     } SCHMOOSERVER;
  67.  
  68. typedef SCHMOOSERVER FAR *LPSCHMOOSERVER;
  69. #define CBSCHMOOSERVER sizeof(SCHMOOSERVER)
  70.  
  71.  
  72. /*
  73.  * Single data structure holding any OLE-specific global variables.
  74.  */
  75.  
  76. typedef struct
  77.     {
  78.     LPSCHMOOSERVER      pSvr;
  79.  
  80.     OLESERVERVTBL       vtblSvr;
  81.     OLESERVERDOCVTBL    vtblDoc;
  82.     OLEOBJECTVTBL       vtblObj;
  83.  
  84.     WORD                cfNative;
  85.     WORD                cfOwnerLink;
  86.     WORD                cfObjectLink;
  87.     } XOLEGLOBALS;
  88.  
  89. typedef XOLEGLOBALS FAR *LPXOLEGLOBALS;
  90. #define CBXOLEGLOBALS sizeof(XOLEGLOBALS)
  91.  
  92.  
  93. //The single global
  94. extern LPXOLEGLOBALS pOLE;
  95.  
  96.  
  97. /*
  98.  * STDTARGETDEVICE structure for ObjSetTargetDevice.
  99.  */
  100.  
  101.  
  102. typedef struct
  103.     {
  104.     //Offsets are pointers into the data field.
  105.     WORD    deviceNameOffset;   //szDeviceName
  106.     WORD    driverNameOffset;   //szDriverName
  107.     WORD    portNameOffset;     //szPortName
  108.     WORD    extDevModeOffset;   //DEVMODE structure
  109.     WORD    extDevModeSize;     //Size of the DEVMOCE struct, for versioning.
  110.     WORD    environmentOffset;  //Current MS-DOS environment, in a string
  111.     WORD    environmentSize;    //Length of environment string.
  112.     BYTE    data[];
  113.     } STDTARGETDEVICE;
  114.  
  115. typedef STDTARGETDEVICE FAR * LPSTDTARGETDEVICE;
  116. #define CBSTDTARGETDEVICE sizeof(STDTARGETDEVICE)
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123. /*
  124.  * Function prototypes for OLE-Specific functions.
  125.  */
  126.  
  127.  
  128.  
  129. //OLECLIP.C
  130. BOOL      FAR PASCAL FOLECopyNative(LPXOLEGLOBALS);
  131. BOOL      FAR PASCAL FOLECopyLink(LPXOLEGLOBALS, BOOL, LPSTR);
  132. HANDLE    FAR PASCAL HLinkConstruct(LPSTR, LPSTR, LPSTR);
  133.  
  134.  
  135. //OLEDOC.C
  136. LPSCHMOODOC FAR PASCAL PDocumentAllocate(LPOLESERVERDOCVTBL);   //Helper
  137. void        FAR PASCAL DocumentClean(LPSCHMOODOC);              //Helper
  138.  
  139. OLESTATUS FAR PASCAL DocClose(LPSCHMOODOC);
  140. OLESTATUS FAR PASCAL DocGetObject(LPSCHMOODOC, LPSTR, LPLPOLEOBJECT, LPOLECLIENT);
  141. OLESTATUS FAR PASCAL DocExecute(LPSCHMOODOC, HANDLE);
  142. OLESTATUS FAR PASCAL DocRelease(LPSCHMOODOC);
  143. OLESTATUS FAR PASCAL DocSave(LPSCHMOODOC);
  144. OLESTATUS FAR PASCAL DocSetColorScheme(LPSCHMOODOC, LPLOGPALETTE);
  145. OLESTATUS FAR PASCAL DocSetDocDimensions(LPSCHMOODOC, LPRECT);
  146. OLESTATUS FAR PASCAL DocSetHostNames(LPSCHMOODOC, LPSTR, LPSTR);
  147.  
  148.  
  149.  
  150. //OLEEXIT.C
  151. BOOL FAR PASCAL FOLEExit(LPXOLEGLOBALS);
  152.  
  153.  
  154. //OLEFILE.C
  155. LPSCHMOODOC FAR PASCAL PDocRevokeAndCreate(LPXOLEGLOBALS);
  156.  
  157.  
  158. //OLEINIT.C
  159. BOOL      FAR PASCAL FOLEInstanceInit(LPXOLEGLOBALS ,HANDLE, LPSTR, LPSTR FAR *, WORD);
  160.  
  161.  
  162. //OLEMISC.C
  163. void      FAR PASCAL MenuEmbeddingSet(HWND, LPSTR, BOOL);
  164. void      FAR PASCAL OLEClientNotify(LPSCHMOOOBJECT, WORD);
  165. BOOL      FAR PASCAL FOLEReleaseWait(BOOL FAR *, LONG);
  166.  
  167.  
  168.  
  169. //OLEOBJ.C
  170. LPSCHMOOOBJECT FAR PASCAL PObjectAllocate(LPOLEOBJECTVTBL);
  171.  
  172. OLESTATUS     FAR PASCAL ObjDoVerb(LPSCHMOOOBJECT, WORD, BOOL, BOOL);
  173. OLECLIPFORMAT FAR PASCAL ObjEnumFormats(LPSCHMOOOBJECT, WORD);
  174. OLESTATUS     FAR PASCAL ObjGetData(LPSCHMOOOBJECT, WORD, LPHANDLE);
  175. LPVOID        FAR PASCAL ObjQueryProtocol(LPSCHMOOOBJECT, LPSTR);
  176. OLESTATUS     FAR PASCAL ObjRelease(LPSCHMOOOBJECT);
  177. OLESTATUS     FAR PASCAL ObjSetBounds(LPSCHMOOOBJECT, LPRECT);
  178. OLESTATUS     FAR PASCAL ObjSetColorScheme(LPSCHMOOOBJECT, LPLOGPALETTE);
  179. OLESTATUS     FAR PASCAL ObjSetData(LPSCHMOOOBJECT, WORD, HANDLE);
  180. OLESTATUS     FAR PASCAL ObjSetTargetDevice(LPSCHMOOOBJECT, HANDLE);
  181. OLESTATUS     FAR PASCAL ObjShow(LPSCHMOOOBJECT, BOOL);
  182.  
  183.  
  184.  
  185. //OLESVR.C
  186. LPSCHMOOSERVER FAR PASCAL PServerAllocate(LPOLESERVERVTBL);
  187.  
  188. OLESTATUS FAR PASCAL ServerCreate(LPSCHMOOSERVER, LHSERVERDOC, LPSTR, LPSTR, LPLPOLESERVERDOC);
  189. OLESTATUS FAR PASCAL ServerCreateFromTemplate(LPSCHMOOSERVER, LHSERVERDOC, LPSTR, LPSTR, LPSTR, LPLPOLESERVERDOC);
  190. OLESTATUS FAR PASCAL ServerEdit(LPSCHMOOSERVER, LHSERVERDOC, LPSTR, LPSTR, LPLPOLESERVERDOC);
  191. OLESTATUS FAR PASCAL ServerExecute(LPSCHMOOSERVER, HANDLE);
  192. OLESTATUS FAR PASCAL ServerExit(LPSCHMOOSERVER);
  193. OLESTATUS FAR PASCAL ServerOpen(LPSCHMOOSERVER, LHSERVERDOC, LPSTR, LPLPOLESERVERDOC);
  194. OLESTATUS FAR PASCAL ServerRelease(LPSCHMOOSERVER);
  195.  
  196.  
  197.  
  198. //OLEVTBL.C
  199. BOOL      FAR PASCAL FOLEVtblInitServer(HANDLE, LPOLESERVERVTBL);
  200. BOOL      FAR PASCAL FOLEVtblInitDocument(HANDLE, LPOLESERVERDOCVTBL);
  201. BOOL      FAR PASCAL FOLEVtblInitObject(HANDLE, LPOLEOBJECTVTBL);
  202.  
  203. void      FAR PASCAL OLEVtblFreeServer(LPOLESERVERVTBL);
  204. void      FAR PASCAL OLEVtblFreeDocument(LPOLESERVERDOCVTBL);
  205. void      FAR PASCAL OLEVtblFreeObject(LPOLEOBJECTVTBL);
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213. #endif //MAKEOLESERVER
  214.